/**
 * 定义下拉列表加载
 */
var selectpicker = function(config) {
	if (typeof config == 'object') {
		if (!config['id'] || !config['url']) {
			return false;
		}
		var defaults = {
			param : {},
			defaultValue : null,
			valueField : 'id',
			textField : 'text',
			defaultAll : false,
			async : true, // 默认异步加载
			loadSuccess : function(data) {
			} // 数据加载成功的回调事件
		};
		config = $.extend(defaults, config || {});
		var $select = $('#' + config.id);
		$.ajax({
			type : 'post',
			url : config.url,
			async : config.async,
			data : config.param,
			dataType : 'json',
			success : function(result) {
				if (config.defaultAll) {
					$select.append('<option value="" >请选择</option>');
				}
				var data = result.data || result.rows || result.list || result;
				$.each(data, function(index, row) {
					var value = row[config.valueField];
					var text = row[config.textField];
					$select.append('<option value="' + value + '" >' + text + '</option>');
				})
				// 设置默认值
				if (config.defaultValue) {
					$select.selectpicker('val', config.defaultValue);
				}
				// 设置options
				// $select.selectpicker(config);
				// 刷新select组件
				// $select.selectpicker('refresh');
				// 数据加载成功之后的回调事件
				config.loadSuccess(data);
			}
		})
	}
};

$(function() {
	$('#regsuccess_box .hd span a').click(function() {
		 $('#regsuccess_box').toggle();
	});
	$("#userForm").validate({
		rules : {
			mobile : {
				required : true,
				minlength : 11,
				mobile : true,
				maxlength : 11,
				remote : {
					url : rootPath + "/reg/doCheckData",
					type : "post",
					async : false,
					dataType : 'json',
					data : {
						mobile : function() {
							return $("#mobile").val()
						},
						type : 'MOBILE',
						value : function() {
							return $("#mobile").val()
						}
					},
					dataFilter : function(data, type) {// 判断控制器返回的内容
						if (data == 'true') {
							return true;
						} else if (data == 'false') {
							return false;
						}
					}
				}
			},
			userName : {
				required : true,
				minlength : 2,
				maxlength : 16
			},
			companyName : {
				minlength : 4,
				maxlength : 40
			},
			parentInvitationCode : {
				minlength : 5,
				maxlength : 5
			},
			mobileCode : {
				required : true,
				number : true,
				maxlength : 6,
				minlength : 6,
				remote : {
					url : rootPath + "/reg/doCheckData",
					type : "post",
					async : false,
					dataType : 'json',
					data : {
						mobile : function() {
							return $("#mobile").val()
						},
						type : 'MOBILE_CODE',
						value : function() {
							return $("#mobileCode").val()
						}
					},
					dataFilter : function(data, type) {
						if (data == 'true') {
							return true;
						} else if (data == 'false') {
							return false;
						}
					}
				}
			},
			password : {
				required : true,
				minlength : 6,
				maxlength : 20
			},
			passwordConfirm : {
				required : true,
				equalTo : '#password'
			}
		},
		messages : {
			mobile : {
				required : '请输入手机号',
				minlength : '请输入正确的手机号码',
				maxlength : '请输入正确的手机号码',
				remote : "该手机号已被占用，您可直接登录"

			},
			userName : {
				required : '请输入姓名',
				minlength : '姓名长度应在2到16字符之间',
				maxlength : '姓名长度应在2到16字符之间'

			},
			companyName : {
				minlength : '企业名称长度应在4到40字符之间',
				maxlength : '企业名称长度应在4到40字符之间'
			},
			parentInvitationCode : {
				minlength : '邀请码只能是5位',
				maxlength : '邀请码只能是5位'
			},
			mobileCode : {
				required : '请输入短信验证码',
				remote : "短信验证码验证失败"
			},
			password : {
				required : '请输入密码',
				minlength : '密码长度应在6-20个字符之间',
				maxlength : '密码长度应在6-20个字符之间'
			},
			passwordConfirm : {
				required : '请再次输入您的密码',
				equalTo : '两次输入的密码不一致'
			}
		},
		errorPlacement : function(error, element) {
			var error_td = element.parent();
			error_td.find('.field_notice').hide();
			error_td.parent().find('input').addClass('erros');
			error_td.append(error);
		},
		success : function(label) {
			label.parent().find('input').removeClass('erros');
			label.addClass('validate_right').text('');
		},
		onkeyup : false,
		submitHandler : function(form) {
			doRegUser();
		}
	});

	selectpicker({
		id : 'companySize', // select的id
		url : rootPath + "/dict/listKeyMapEntites", // 请求数据的远程地址
		param : {
			keyType : 'companySize'
		}, // 过滤参数
		defaultValue : '',
		valueField : 'keyValue',
		textField : 'keyIntro',
		width : '50%'
	});
	selectpicker({
		id : 'companyIndustry', // select的id
		url : rootPath + "/dict/listKeyMapEntites", // 请求数据的远程地址
		param : {
			keyType : 'companyIndustry'
		}, // 过滤参数
		defaultValue : '',
		valueField : 'keyValue',
		textField : 'keyIntro',
		width : '50%'
	});

	selectpicker({
		id : 'provinceCode', // select的id
		url : rootPath + "/area/getAreaList", // 请求数据的远程地址
		param : {
			rootDepth : '1'
		}, // 过滤参数
		valueField : 'id',
		textField : 'areaName',
		defaultAll : false,
		width : '50%'
	});
	// 省改变，加载市
	$("#provinceCode").change(function() {
		// 获取省ID值
		var provinceValue = $("#provinceCode").val();
		// 清空市下拉框
		$("#cityCode").empty();
		// 清空区下拉框
		$("#areaCode").empty();
		if (!provinceValue)
			return;
		// 加载市数据
		selectpicker({
			id : 'cityCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : provinceValue
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultAll : true
		});
	});

	// 市改变，加载区
	$("#cityCode").change(function() {
		// 获取市ID值
		var cityCode = $("#cityCode").val();
		// 清空区下拉框
		$("#areaCode").empty();
		if (!cityCode)
			return;
		// 加载市数据
		selectpicker({
			id : 'areaCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : cityCode
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultAll : true
		});
	});
});

/**
 * 行业文本
 */
$("#companyIndustry").change(function() {
	$("#companyIndustryName").val($("#companyIndustry option:selected").text());
});

/**
 * 根据公司名称，为公司元素添加校验
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月18日 上午9:35:15
 * @param obj
 */
function loadCompanyValidata(obj) {
	var length = $.trim(obj.value).length;
	if (length >= 4) {
		addCompanyValidata();
	} else {
		removeCompanyValidata();
	}
}

/**
 * 添加校验（公司）
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月18日 上午9:32:07
 */
function addCompanyValidata() {
	removeCompanyValidata();
	$("#provinceCode").rules("add", {
		required : true,
		min : 0,
		messages : {
			required : "请选择省份",
			min : "请选择省份"
		}
	});
	$("#cityCode").rules("add", {
		required : true,
		min : 0,
		messages : {
			required : "请选择城市",
			min : "请选择城市"
		}
	});
	$("#areaCode").rules("add", {
		required : true,
		min : 0,
		messages : {
			required : "请选择区",
			min : "请选择区"
		}
	});
//	$("#companySize").rules("add", {
//		required : true,
//		min : 0,
//		messages : {
//			required : "请选择公司人数",
//			min : "请选择公司人数"
//		}
//	});
//	$("#companyIndustry").rules("add", {
//		required : true,
//		min : 0,
//		messages : {
//			required : "请选择公司行业",
//			min : "请选择公司行业"
//		}
//	});
}
/**
 * 移除校验
 */
function removeCompanyValidata() {
	$("#provinceCode").rules("remove");
	$("#cityCode").rules("remove");
	$("#areaCode").rules("remove");
}

/**
 * 注册
 */
function doRegUser() {
	// 验证
	$.ajax({
		url : rootPath + "/reg/userReg",
		type : "post",
		async : false,
		dataType : 'json',
		data : $("#userForm").serialize(),
		success : function(json) {
			if (json.code == '1') {
				$("#regsuccess_box").show();
			} else {
				layer.msg(json.msg, {
					icon : 2
				});
				refresh('authImg');
			}
		}
	});
}

// 验证码计时任务定义
var timer;
/**
 * 发送手机验证码
 */
$("#btnSendMobileCode").click(function() {
	try {
		window.clearInterval(timer);
		clearInterval(timer);
	} catch(e) {
		console.log(e);
	}
	var mobile = $("#mobile").val();
	if (!(/^1\d{10}$/.test(mobile))) {
		layer.msg('请输入正确的手机号码！', {
			icon : 2
		});
		return;
	}
	// 生成短信验证码，并置灰按钮
	$.ajax({
		url : rootPath + "/reg/sendMobileCode",
		type : "post",
		async : false,
		dataType : 'json',
		data : {
			mobile : mobile
		},
		success : function(json) {
			if (json.code == '1') {
				$("#btnSendMobileCode").val("60 秒");
				$("#btnSendMobileCode").attr('disabled', true);
				timer = setInterval(reSetMobileBtn, 1000);
			} else {
				layer.msg('短信发送失败，请重新发送！', {
					icon : 2
				});
			}
		}
	});
});

/**
 * 重置按钮
 */
function reSetMobileBtn() {
	var time = parseInt($("#btnSendMobileCode").val().replace("秒",""));
	if (time > 1) {
		time--;
		$("#btnSendMobileCode").val(time+" 秒");
	} else {
		$("#btnSendMobileCode").val("再次发送");
		$("#btnSendMobileCode").attr('disabled', false);
		try {
			window.clearInterval(timer);
			clearInterval(timer);
		} catch(e) {
			console.log(e);
		}
	}
}

/**
 * 重新刷新图片验证码
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年9月20日 上午10:49:43
 */
function refresh(img) {
	var url = rootPath + "/reg/autoCode.jpg?number=" + Math.random();
	$("#" + img).attr("src", url);
}
